DAY8我們介紹了許多建議如提示、計分等,今天就利用昨天介紹的第五點介紹今天使用及延伸的程式碼!
目錄
1.使用語法
2.程式碼呈現
1 使用語法
import 語法:
/import java.util.Scanner; 用於導入 Scanner 類,以便從控制台讀取用戶輸入。
變數宣告與初始化:
/int player1Guess, player2Guess; 宣告兩個整數變數,用於存儲玩家1和玩家2的猜測值。
/int player1Attempts = 0, player2Attempts = 0; 宣告並初始化記錄玩家猜測次數的變數。
/int target = (int) (Math.random() * 100 + 1); 用於生成一個1到100之間的隨機數,並將其賦值給 target 變數。
/Scanner sc = new Scanner(System.in); 建立一個 Scanner 物件,用來從控制台讀取使用者輸入。
/while (!isGuessed) { ... } 是一個迴圈結構,該迴圈會持續執行內部的程式碼,直到 isGuessed 變為 true。
/用於實現遊戲的重複猜測邏輯,讓兩個玩家輪流進行猜測。
/if (player1Guess == target) { ... } else if (player1Guess > target) { ... } else { ... }
/用於判斷玩家的猜測是否正確,並提供相應的反饋(如「數字太大」或「數字太小」)。
/if (player1Attempts < player2Attempts) { ... } else if (player2Attempts < player1Attempts) { ... } else { ... }
/break; 用於跳出 while 迴圈,當某位玩家猜中目標數字時,遊戲即刻結束。
/boolean isGuessed = false; 用於控制迴圈是否應該繼續。當某位玩家猜中數字時,該變數被設置為 true,從而結束迴圈。
2.程式碼呈現
,,,
import java.util.Scanner;
public class Ch7_5_Multiplayer {
public static void main(String[] args) {
int target; // 宣告目標數字
int player1Guess, player2Guess; // 宣告兩個玩家的猜測變數
int player1Attempts = 0, player2Attempts = 0; // 記錄每個玩家的猜測次數
Scanner sc = new Scanner(System.in);
target = (int) (Math.random() * 100 + 1); // 產生1~100的隨機數字
boolean isGuessed = false;
// 玩家輪流猜測直到其中一位猜中
while (!isGuessed) {
// 玩家1猜測
System.out.print("玩家1,請輸入猜測值 => ");
player1Guess = sc.nextInt();
player1Attempts++;
if (player1Guess == target) {
System.out.println("玩家1 猜中數字: " + target + ",共用了 " + player1Attempts + " 次!");
isGuessed = true;
break;
} else if (player1Guess > target) {
System.out.println("數字太大!");
} else {
System.out.println("數字太小!");
}
// 玩家2猜測
System.out.print("玩家2,請輸入猜測值 => ");
player2Guess = sc.nextInt();
player2Attempts++;
if (player2Guess == target) {
System.out.println("玩家2 猜中數字: " + target + ",共用了 " + player2Attempts + " 次!");
isGuessed = true;
break;
} else if (player2Guess > target) {
System.out.println("數字太大!");
} else {
System.out.println("數字太小!");
}
}
// 顯示最終結果
if (player1Attempts < player2Attempts) {
System.out.println("玩家1 獲勝!");
} else if (player2Attempts < player1Attempts) {
System.out.println("玩家2 獲勝!");
} else {
System.out.println("平手!");
}
}
}
但光看這段程式碼是不是覺得不夠完整?像是好像遊戲進行後只能使用一次?多人模式不夠完?以下可以在基礎上進一步延伸,例如:
/增加更多玩家:將玩家數量擴展到三人或更多。
/設置回合數限制:限制每個玩家的猜測次數,如果在一定回合數內無人猜中,則遊戲平局。
/允許重新開始遊戲:在一局遊戲結束後,允許玩家選擇重新開始遊戲。